package packageclass;

import java.util.ArrayList;
import java.util.LinkedList;

public class PackageClassTest {
    public static void main(String[] args) {
        //包装类在java.lang包中,使用到此包中的类可以省略导包语句
        //byte -> Byte
        //short -> Short
        //int -> Integer
        //long -> Long
        //float -> Float
        //double ->Double
        //
        //char -> Character
        //boolean -> Boolean
//

        Integer a = 1;
//        Integer i = new Integer(1);

        System.out.println(a);
        Character c = 'C';
        System.out.println(c);

        // 3.2 如何转换：
        //        （装箱）基本数据类型 ---> 包装类：
        int value = 5;

        //        ① 使用包装类的构造器
//        Integer i = new Integer(value);
        //② （建议）调用包装类的valueOf(xxx xx)
        Integer i = Integer.valueOf(5);
        // hashCode获取hashCode
        int i1 = i.hashCode();
        int i2 = i.intValue();
        System.out.println(i2);

        System.out.println(i1);


        //        （拆箱）包装类 ---> 基本数据类型：调用包装类的xxxValue()
        Byte b = Byte.valueOf("1");
        Class<? extends Byte> aClass = b.getClass();
        byte b1 = b.byteValue();

        System.out.println(b1);

        //包装类的运用
        ArrayList<Integer> ints = new ArrayList<Integer>();
        ints.add(1);
//        LinkedList<char> chars = new LinkedList<char>();
        LinkedList<Character> chars = new LinkedList<Character>();
        chars.add('a');


//        4. String 与 基本数据类型、包装类之间的转换。
        int t1 = 12;
        Integer i3 = Integer.valueOf(12);
        System.out.println(i3.getClass());

        //  valueOf()方法；可以将基本数据类型、包装类转换为String类型
        String s1 = String.valueOf(t1);
        String s = String.valueOf(i3);

//      ② 基本数据类型的变量 + ""
        String s2 = t1 + "";
        System.out.println(s2);
        // getClass()方法,获取类
        System.out.println(s2.getClass());


//
//        基本数据类型、包装类 ---> String类型：
//        ① 调用String的重载的静态方法valueOf(xxx xx) ;
//        ② 基本数据类型的变量 + ""
//
//        String类型 ---> 基本数据类型、包装类: 调用包装类的静态方法：parseXxx()
        String s4 = "ture";
        // 把字符串"true"转换为Boolean包装类
        boolean b2 = Boolean.parseBoolean(s4);
//        把包装类转换为基本数据类型
        System.out.println(b2);



        // 字符串类型数字转为为基本数据类型
        String s5 = "12";
        //方式
        // 把字符串"12"转换为int基本数据类型
        int i4 = Integer.parseInt(s5);
        System.out.println(i4);

        // 字符串类型byte转为为基本类型
        String s6 = "16";
        byte b3 = Byte.parseByte(s6);
        System.out.println(b3);














    }
}


//class A{
//    public void show(){
//        System.out.println("A");
//    }
//}
//
//
//class B{
//    public void show(){
//        System.out.println("B");
//    }
//}